技术文档丨车辆建模
车辆动态建模服务采用监督机器学习算法生成基于学习的车辆动态模型,作为在Apollo仿真平台中进行闭环控制仿真的定制动态模型。
动态建模的使用需要三个主要步骤:
(1)通过前端数据收集过程监视系统收集用于基于学习的建模的训练/测试数据。
(2)过本地构建标准将收集的数据上传到云中BOS链接的文件夹。
(3)通过在线服务网页提交服务命令,并在电子邮件通知中期待建模结果。
ENJOY THE FOLLOWING
在DreamView中,提供了一个数据采集监视器来监控数据采集过程。用户在“ setup_mode”菜单中选择“车辆校准”选项后,数据收集过程将在数据收集监视器中可视化。行驶数据被分类为不同的行驶条件,如下图所示。收集的数据量(以帧为单位)显示为进度条。
在车载DreamView环境中:
1. 选择vehicle calibration的--setup mode--。
2. Data Collection Monitor在Others面板上选择。
在DreamView中显示数据采集监视器。
在驱动时,通过从机箱通道消息中识别其驱动状态来自动处理数据帧。当单个数据帧满足速度标准(速度等于或大于0.2 mps)时,单个数据帧将根据其转向,速度和油门/制动信息进行分类。数据收集过程在数据收集监视器的进度栏中显示。
数据收集监视器中总共有21个进度条。整个过程由顶部进度条指示。其余20个进度条指示20个驾驶条件,包括:
六种制动条件在不同的速度水
○ 低速(<10mps)制动脉冲
○ 中速(10mps〜20mps)制动脉冲
○ 高速(≥20mps)制动脉冲
○ 低速(<10mps)制动阀门
○ 中速(10mps〜20mps)制动阀门
○ 高速(≥20mps)制动阀门
六种油门条件下不同的速度水平
○ 低速(<10mps)小油门
○ 中速(10mps~20mps)小油门
○ 高速(≥20mps)小油门
○ 低速(<10mps)大油门
○ 中速(10mps~20mps)大油门
○ 高速(≥20mps)大油门
八种转向角情况
○ 左0%~20%
○ 左20%~40%
○ 左40%~60%
○ 左60%~100%
○ 0%~20%
○ 右20%~40%
○ 右40%~60%
○ 右60%~100%
对于每个条形图,都有一条蓝丝带指示收集的数据帧。当蓝丝带填充整个条形图时,收集的帧数达到目标数。每个条的右端还有一个数字,指示完成百分比。对于动态建模数据收集,当所有进度条都达到100%时,数据收集过程被视为“已完成”。
所有数据都保存在nvme drive或data/record/。
刹车和油门规格在不同的车型上是不同的。因此,制动脉冲/轻拍和散列/节流的标准取决于车辆模型。默认设置基于林肯 MKZ模型。对于不同车型,可以在以下位置配置这些参数:
/apollo/modules/dreamview/conf/mkz7_data_collection_table.pb.txt
<左右滑动以查看完整代码>
上传数据前,请注意 :
1. 文件夹维护的结构如下:
2. 如上所示,要维护的文件夹结构为:
Origin Folder -> Task Folder -> Vehicle Folder -> Records Folder + Configuration files
<左右滑动以查看完整代码>
3. 需要为您的动态建模作业创建一个任务文件夹,例如task001,task002 ...
4. 需要为您的车辆创建一个车辆文件夹。文件夹中的名称应该与在DreamView中看到的相同。
5. 在文件夹中,创建一个records文件夹来保存数据。
6. 将所有配置文件与records文件夹一起存储在Vehicle文件夹内。
7. 自Apollo 5.0及更高版本以来,车辆配置文件(vehicle_param.pb.txt)已更新,您应该检查它。
8. 一个任务文件夹可以包含多个车辆文件夹,换句话说,您可以在一项培训工作中为多辆车辆训练模型。
使用bosfs将bucket挂载到本地,例如:
1BUCKET=<bucket>
2AK=<access key>
3SK=<secret key>
4MOUNT=/mnt/bos
5# It's required to provide correct BOS region. Please read the document
6# https://cloud.baidu.com/doc/BOS/S3.html#.E6.9C.8D.E5.8A.A1.E5.9F.9F.E5.90.8D
7REGION=bj
8
9mkdir -p "${MOUNT}"
10bosfs "${BUCKET}" "${MOUNT}" -o allow_other,logfile=/tmp/bos-${BUCKET}.log,endpoint=http: //${REGION}.bcebos.com,ak=${AK},sk=${SK}
<左右滑动以查看完整代码>
然后,您可以将准备好的数据文件夹复制到/mnt/bos下的某一位置。
登录到《Apollo webpage》(链接见文末):,在功能菜单中选择Apollo Fuel->New Job。选择New Job菜单栏下的Dynamic Model选项,然后填充Input Data Path和数据存储路径,从根目录开始在你的BOS文件夹,并选择是否点击向后单选按钮(点击如果你打算在Backward driving模式下的训练你的车,否则留空)。最后,通过单击Submit Job按钮提交作业。
在动态建模工作成功启动并且您上传的数据通过完整性检查后,用户将在您注册的电子邮件地址收到第一封通知电子邮件。
然后,在动态建模工作完成后,用户会收到第二封通知邮件,在邮件中会提供您自己BOS文件夹下生成的模型存储路径和过滤后的数据可视化路径。
要在仿真平台或《Control_Auto_Tuning》(链接见文末)服务中使用这些生成的动态模型,用户需要重命名接收到的动态模型并把它们放在相应的GitHub镜像路径中去:
前进驱动模型在GitHub上的位置:
apollo/modules/control/conf/dynamic_model_forward.bin;
倒车驱动模型在GitHub上的位置:
apollo/modules/control/conf/dynamic_model_backward.bin.
*《Apollo webpage》
http://bce.apollo.auto/
*《Control_Auto_Tuning》
https://github.com/ApolloAuto/apollo/blob/master/docs/Apollo_Fuel/Control_Auto_Tuning/README.md
以上是"车辆建模"的全部内容,更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。